package com.qf.oop.dt;

import com.qf.oop.extend.Animal;
import com.qf.oop.extend.Cat;
import com.qf.oop.extend.Dog;

public class Demo01 {

    public static void main(String[] args) {
        Animal animal = new Dog(); // 多态写法 ，父类型的变量被赋值成了 子类型的对象
        // 如果把 变量声明为 父类型，那么接下来的代码中可以使用的属性和方法都必须定义在父类中
        animal.sleep();
        // 在调用方法时，如果子类覆盖了父类的方法，那么会调用子类中的方法
        animal.eat();

        animal = new Cat(); // 改变animal的指向为一个cat对象
        animal.sleep();
        animal.eat();

    }
}
